/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package CapaNegocios;

import controlrestaurante.pmf;
import controlador.ClasificacionJpaController;
import entidad.Clasificacion;
import entidad.Platos;
import entidad.Bebidas;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Milvia
 */
public class CNClasificacion {
    public static boolean insertar(Clasificacion casificacion)
    {        
        try{
            ClasificacionJpaController controlador = new ClasificacionJpaController(pmf.getInstancia().getEMF());
            controlador.create(casificacion);
        }catch (Exception e){
            return false;
        }
        return true;  
    }
    
    public static boolean insertar (String nombre, String descripcion, String imagen)
    {
        try{
            Clasificacion clasificacion = new Clasificacion();
            clasificacion.setNombreGenero(nombre);
            clasificacion.setDescripcion(descripcion);
            clasificacion.setActivo(Boolean.TRUE);
            clasificacion.setDireccionImagen(imagen);
            ClasificacionJpaController controladorClasificacio = new ClasificacionJpaController(pmf.getInstancia().getEMF());
            controladorClasificacio.create(clasificacion);
        }
        catch (Exception e){
            return false;
        }
        
        return true;
    }
    
    public static boolean modificar (String nombre, String descripcion, String imagen)
    {
        try{
            Clasificacion clasificacion = new Clasificacion();
            clasificacion.setNombreGenero(nombre);
            clasificacion.setDescripcion(descripcion);
            clasificacion.setActivo(Boolean.TRUE);
            clasificacion.setDireccionImagen(imagen);
            ClasificacionJpaController controladorClasificacio = new ClasificacionJpaController(pmf.getInstancia().getEMF());
            controladorClasificacio.edit(clasificacion);
        }
        catch (Exception e){
            return false;
        }
        
        return true;
    }
    
    public static boolean activar (int id)
    {
        ClasificacionJpaController controladorClasificacion = new ClasificacionJpaController(pmf.getInstancia().getEMF());
        Clasificacion clasificacion = controladorClasificacion.findClasificacion(id);
        if (clasificacion == null)
            return false;
        try{
            clasificacion.setActivo(Boolean.TRUE);
            ClasificacionJpaController controlador = new ClasificacionJpaController(pmf.getInstancia().getEMF());
            controlador.edit(clasificacion);
        }
        catch(Exception e){
            return false;
        }
        return true;
    }
    
    public static boolean desactivar (int id)
    {
        ClasificacionJpaController controladorClasificacion = new ClasificacionJpaController(pmf.getInstancia().getEMF());
        Clasificacion clasificacion = controladorClasificacion.findClasificacion(id);
        if (clasificacion == null)
            return false;
        try{
            clasificacion.setActivo(Boolean.FALSE);
            ClasificacionJpaController controlador = new ClasificacionJpaController(pmf.getInstancia().getEMF());
            controlador.edit(clasificacion);
        }
        catch(Exception e){
            return false;
        }
        return true;
    }
    
    public static Clasificacion buscarId(int id)
    {
        Clasificacion clasificacion;
        try{
            ClasificacionJpaController controladorClasificacion = new ClasificacionJpaController(pmf.getInstancia().getEMF());
            clasificacion = controladorClasificacion.findClasificacion(id);
        }
        catch(Exception e)
        {
            return null;
        }
        return clasificacion;    
    }
    
    public static List<Clasificacion> buscarActivos()
    {
        List<Clasificacion> clasificaciones = (List) Consultas.consulta("Clasificacion", "findByActivo", "activo", true);
        return clasificaciones;
    }
    
    public static List<Clasificacion> buscarEliminados()
    {
        List<Clasificacion> clasificaciones = (List) Consultas.consulta("Clasificacion", "findByActivo", "activo", false);
        return clasificaciones;
    }
    
    public static List<Clasificacion> buscarPorNombre(String nombre)
    {
        List<Clasificacion> clasificaciones = (List) Consultas.consulta("Clasificacion", "findByNombreGenero", "nombreGenero", "%"+nombre+"%");
        return clasificaciones;
    }

    public static List<Platos> buscarPlatos(Clasificacion clasificacion)
    {
        List<Platos> platos = new ArrayList();
        try
        {
            for (Platos plato: clasificacion.getPlatosCollection())
            {
                if (plato.getActivo())
                    platos.add(plato);
            }
        }
        catch (Exception e)
        {
            return null;
        }
        return platos;
    }
    
    public static List<Bebidas> buscarBebidas(Clasificacion clasificacion)
    {
        List<Bebidas> bebidas = new ArrayList();
        try
        {
            for (Bebidas bebida: clasificacion.getBebidasCollection())
            {
                if (bebida.getActivo())
                    bebidas.add(bebida);
            }
        }
        catch (Exception e)
        {
            return null;
        }
        return bebidas;
    }
}
